package pe.gob.osce.sirenas.model.jpa;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;


@Entity
@Table(name="DET_REG_TRAYEC_ARBITRAL", schema="RNAS" )
@SequenceGenerator(name = "sqId_Det_Tray_Arbitral", sequenceName = "RNAS.ID_DET_TRAYEC_ARBITRAL", allocationSize=1)
public class TrayectoriaArbitral implements Serializable {

	private static final long serialVersionUID = -145665424423441664L;

	@Id 
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sqId_Det_Tray_Arbitral")	
	@Column(name="N_ID_TRAYECTORIA")
	private Long idTrayectoria;	
	@Column(name="N_ID_FICHA")
	private Long idFicha;		
	@Column(name="N_IND_ESPECIALIDAD")
	private Integer indEspecialidad;		
	@Column(name="C_DES_TIPO_TRAYECTORIA")
	private String tipoTrayectoria;		
	@Column(name="C_NOM_ENTIDAD")
	private String nomEntidad;			
	@Column(name="C_NOM_CONTRATISTA")
	private String nomContratista;	
	@Column(name="C_DES_OBJETO_CONTRATACION")
	private String objContratacion;
	@Column(name="C_NUM_CONTRATO")
	private String numContrato;		
	@Column(name="C_DES_PROCESO_SELECCION")
	private String procesoSeleccion;	
	@Column(name="C_IND_MATERIA_CONTROVERTIDA")
	private String idMateriaControvertida;	
	@Column(name="D_FEC_INICIO")	
	private Date fecInicio;	
	@Column(name="D_FEC_FIN")	
	private Date fecFin;		
	@Column(name="N_IND_TIPO_ARBITRAJE")	
	private Long indTipoArbitraje;
	@Column(name="C_COD_TRAMITE")
	private String codTramite;	
	@Column(name="N_IND_ESTADO")
	private Long estado;

	@Column(name="C_COD_REGISTRO")
	private String codRegistro;
	
	
	/**
	 * Metodo que permite obtener codRegistro.
	 * @return codRegistro , tipo String.
	 */
	public String getCodRegistro() {
		return codRegistro;
	}


	/**
	 * Permite actualizar codRegistro.
	 * @param codRegistro, tipo String.
	 */
	public void setCodRegistro(String codRegistro) {
		this.codRegistro = codRegistro;
	}

	@Embedded
	private Auditoria auditoria;
	
	
	@ManyToOne( cascade = { CascadeType.ALL } )
	@JoinColumn(name="N_ID_FICHA", insertable=false, updatable=false)
	private FichaArbitral fichaArbitral;


	public Long getIdTrayectoria() {
		return idTrayectoria;
	}


	public void setIdTrayectoria(Long idTrayectoria) {
		this.idTrayectoria = idTrayectoria;
	}


	public Long getIdFicha() {
		return idFicha;
	}


	public void setIdFicha(Long idFicha) {
		this.idFicha = idFicha;
	}




	/**
	 * Metodo que permite obtener indEspecialidad.
	 * @return indEspecialidad , tipo Integer.
	 */
	public Integer getIndEspecialidad() {
		return indEspecialidad;
	}


	/**
	 * Permite actualizar indEspecialidad.
	 * @param indEspecialidad, tipo Integer.
	 */
	public void setIndEspecialidad(Integer indEspecialidad) {
		this.indEspecialidad = indEspecialidad;
	}


	public String getTipoTrayectoria() {
		return tipoTrayectoria;
	}


	public void setTipoTrayectoria(String tipoTrayectoria) {
		this.tipoTrayectoria = tipoTrayectoria;
	}


	public String getNomEntidad() {
		return nomEntidad;
	}


	public void setNomEntidad(String nomEntidad) {
		this.nomEntidad = nomEntidad;
	}


	public String getNomContratista() {
		return nomContratista;
	}


	public void setNomContratista(String nomContratista) {
		this.nomContratista = nomContratista;
	}


	public String getObjContratacion() {
		return objContratacion;
	}


	public void setObjContratacion(String objContratacion) {
		this.objContratacion = objContratacion;
	}


	public String getNumContrato() {
		return numContrato;
	}


	public void setNumContrato(String numContrato) {
		this.numContrato = numContrato;
	}


	public String getProcesoSeleccion() {
		return procesoSeleccion;
	}


	public void setProcesoSeleccion(String procesoSeleccion) {
		this.procesoSeleccion = procesoSeleccion;
	}



	/**
	 * Metodo que permite obtener idMateriaControvertida.
	 * @return idMateriaControvertida , tipo String.
	 */
	public String getIdMateriaControvertida() {
		return idMateriaControvertida;
	}


	/**
	 * Permite actualizar idMateriaControvertida.
	 * @param idMateriaControvertida, tipo String.
	 */
	public void setIdMateriaControvertida(String idMateriaControvertida) {
		this.idMateriaControvertida = idMateriaControvertida;
	}


	public Date getFecInicio() {
		return fecInicio;
	}


	public void setFecInicio(Date fecInicio) {
		this.fecInicio = fecInicio;
	}


	public Date getFecFin() {
		return fecFin;
	}


	public void setFecFin(Date fecFin) {
		this.fecFin = fecFin;
	}


	public Long getIndTipoArbitraje() {
		return indTipoArbitraje;
	}


	public void setIndTipoArbitraje(Long indTipoArbitraje) {
		this.indTipoArbitraje = indTipoArbitraje;
	}


	public Long getEstado() {
		return estado;
	}


	public void setEstado(Long estado) {
		this.estado = estado;
	}


	public Auditoria getAuditoria() {
		return auditoria;
	}


	public void setAuditoria(Auditoria auditoria) {
		this.auditoria = auditoria;
	}


	public FichaArbitral getFichaArbitral() {
		return fichaArbitral;
	}


	public void setFichaArbitral(FichaArbitral fichaArbitral) {
		this.fichaArbitral = fichaArbitral;
	}


	/**
	 * Metodo que permite obtener codTramite.
	 * @return codTramite , tipo String.
	 */
	public String getCodTramite() {
		return codTramite;
	}


	/**
	 * Permite actualizar codTramite.
	 * @param codTramite, tipo String.
	 */
	public void setCodTramite(String codTramite) {
		this.codTramite = codTramite;
	}
		
}
